/***********************************************************************
 *
 * MODULE NAME:    host_ll.h
 * PROJECT CODE:   host side stack
 * DESCRIPTION:    HOST Generic Linked List Header
 * MAINTAINER:     Dave Airlie
 * CREATION DATE:  21 Aug 2000
 *
 * SOURCE CONTROL: $Id: host_ll.h,v 1.2 2008/12/16 10:20:39 jianguo Exp $
 *
 * LICENSE:
 *     This source code is copyright (c) 2000 RDA Microelectronics Inc.
 *     All rights reserved.
 *
 * REVISION HISTORY:
 *    15.Mar.2000 -   DA - first import
 *
 *
 * ISSUES:
 *
 ***********************************************************************/

#ifndef RDABT_HOST_LL_H
#define RDABT_HOST_LL_H

typedef int (*rdabt_host_t_cmp_funcptr)(void *cmpin, void *compwith);
typedef int (*rdabt_host_t_exe_funcptr)(void *exe_data, void *func_info);
struct rdabt_host_gen_ll 
{
  struct rdabt_host_gen_ll *next;
  void *data;
  u_int8 flag;
};


int rdabt_host_ll_add(struct rdabt_host_gen_ll **list, void *data);
int rdabt_host_ll_remove(struct rdabt_host_gen_ll **list, void **data, void *cmp_input, rdabt_host_t_cmp_funcptr cmp_funcptr);
int rdabt_host_ll_search(struct rdabt_host_gen_ll **list, void **data,  void *cmp_input, rdabt_host_t_cmp_funcptr cmp_funcptr);
int rdabt_host_ll_remove_all(struct rdabt_host_gen_ll **list,rdabt_host_t_exe_funcptr execute_funcptr, void *func_info);
int rdabt_host_ll_traverse(struct rdabt_host_gen_ll *list, rdabt_host_t_exe_funcptr execute_funcptr, void *func_data);
#endif

